import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Proporciona el obstaculo civil para agregarlo al mundo.
 * 
 * @author Asael Hernández García
 * @version (a version number or a date)
 */
public class Civil extends Obstaculos
{
    /**
     * Act - do whatever the Civil wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    private GreenfootImage img1, img2, img3, img4, img5;
    private SimpleTimer civilTimer;
    private GreenfootSound civilSound;
    private int velocidad;
    
    public Civil()
    {
        img1 = new GreenfootImage("p1.png");
        img2 = new GreenfootImage("p2.png");
        img3 = new GreenfootImage("p3.png");
        img4 = new GreenfootImage("p4.png");
        img5 = new GreenfootImage("p5.png");
        setImage(img1);
        civilSound = new GreenfootSound("civil.wav");
        civilSound.setVolume(80);
        civilTimer = new SimpleTimer();
        civilTimer.mark();
        velocidad = 1;
    }
    
    public void act() 
    {
        if(isTouching(Jugador.class) || isTouching(Obstaculo.class)){
            ((PistaAutomovil)getWorld()).addPolice();
            civilSound.play();
            ((PistaAutomovil)getWorld()).removeObs(this);
        }
        else{
        if(((PistaAutomovil)getWorld()).getAdv()){
            velocidad = 5;
            ((PistaAutomovil)getWorld()).advertencia(false);
        }
        
        if(getX() < getWorld().getWidth()){
            move(velocidad);
        }
            
        if(civilTimer.millisElapsed() > 300){
            switchImage();
            civilTimer.mark();
        }
        
        if(getX() >= getWorld().getWidth() - getImage().getWidth()){
            ((PistaAutomovil)getWorld()).removeObs(this);
        }
        
        }
    }  
   
    /**Metodo para alternar las imagenes del civil
     *  y simular el caminado
     */
    public void switchImage()
    {
        if(getImage() == img1)
            setImage(img2);
        else
            if(getImage() == img2)
                setImage(img3);
            else
                if(getImage() == img3)
                    setImage(img4);
                else
                    if(getImage() == img4)
                        setImage(img5);
                     else
                      if(getImage() == img5)
                        setImage(img1);
    }
}
